前天介紹了虛擬機的基礎知識,今天再進一步探討虛擬機的不同種類
虛擬機分為兩個大類別:
- Process VM
- 針對單一應用程式進行虛擬化的技術
- 不模擬整個作業系統或硬體介面
- 原理是透過把程式碼編譯成IR(中間語言)取代不同架構下的組合語言
- 在運行時才將IR轉譯成底層的組合語言
- EX: JVM, .NET...
- System VM
- 即前篇介紹到的虛擬機器
- 可以模擬整個作業系統與硬體介面
用下面這張圖就可以清楚了解差別所在,Process VM模擬了ABI層,System VM模擬了ISA層
管理與運行System VM的程式稱為"虛擬機管理程式"
英文則有兩種說法 "Hypervisor", "Virtual Machine Monitor(VMM)"
虛擬機管理程式又可以分成兩種類型
- Type 1
-
專門運行虛擬機器的作業系統
- 虛擬後的效能損耗較小
- EX:
- Type 2
- 依賴於已有的作業系統來運行
- 於個人電腦或桌面環境使用
- EX: